package com.zerosky.crm.dao;

import java.util.List;
import java.util.Map;

import com.zerosky.crm.po.Contract;

/**
 * Contract数据接口
 * 
 * @author hugy;
 * @since 2017-06-08
 */
public interface ContractDAO {

	/**
	 * Contract列表数据接口
	 * 
	 * @author hugy;
	 * @since 2017-06-08
	 */
	public List<Contract> getContractList(Map map);

	/**
	 * 通过主键查找Contract数据接口
	 * 
	 * @param id
	 *            Contract主键
	 * @author hugy;
	 * @since 2017-06-08
	 */
	public Contract getContractById(String id);

	/**
	 * 查询记录数
	 * 
	 * 
	 * @param map
	 * @return
	 */
	public int countContract(Map map);

	/**
	 * 新增Contract数据接口
	 * 
	 * @param Contract
	 *            实体对象
	 * @author hugy;
	 * @since 2017-06-08
	 */
	public int addContract(Contract contract) throws Exception;

	/**
	 * 修改Contract数据接口
	 * 
	 * @param Contract
	 *            实体对象
	 * @author hugy;
	 * @since 2017-06-08
	 */
	public int updateContract(Contract contract) throws Exception;

	/**
	 * 通过主键删除Contract数据接口
	 * 
	 * @param id
	 *            Contract主键
	 * @author hugy;
	 * @since 2017-06-08
	 */
	public int deleteContractById(String id) throws Exception;

	/**
	 * 获取合同审核列表数据接口
	 * 
	 * @param map
	 *            参数map
	 * @return
	 */
	public List<Contract> getContractCheckList(Map<String, Object> map) throws Exception;

	/**
	 * 获取合同审核列表总数接口
	 * 
	 * @param map
	 *            参数map
	 * @return
	 */
	public int countCheckContract(Map<String, Object> map);

	/**
	 * 获取某个产品的已使用额度
	 * 
	 */
	public Double getContractSum(String productName);
}
